package com.dayu.basic.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.dayu.common.config.RuoYiConfig;
import com.dayu.common.utils.DateUtils;
import com.dayu.common.utils.file.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dayu.basic.mapper.BasicFileMapper;
import com.dayu.basic.domain.BasicFile;
import com.dayu.basic.service.IBasicFileService;

/**
 * 附件管理Service业务层处理
 * 
 * @author HK
 * @date 2021-04-15
 */
@Service
public class BasicFileServiceImpl implements IBasicFileService 
{
    @Autowired
    private BasicFileMapper basicFileMapper;

    /**
     * 查询附件管理
     * 
     * @param fileId 附件管理ID
     * @return 附件管理
     */
    @Override
    public BasicFile selectBasicFileById(Long fileId)
    {
        return basicFileMapper.selectBasicFileById(fileId);
    }

    /**
     * 查询附件管理列表
     * 
     * @param basicFile 附件管理
     * @return 附件管理
     */
    @Override
    public List<BasicFile> selectBasicFileList(BasicFile basicFile)
    {
        return basicFileMapper.selectBasicFileList(basicFile);
    }

    /**
     * 新增附件管理
     * 
     * @param basicFile 附件管理
     * @return 结果
     */
    @Override
    public int insertBasicFile(BasicFile basicFile)
    {
        basicFile.setCreateTime(DateUtils.getNowDate());
        return basicFileMapper.insertBasicFile(basicFile);
    }

    /**
     * 修改附件管理
     * 
     * @param basicFile 附件管理
     * @return 结果
     */
    @Override
    public int updateBasicFile(BasicFile basicFile)
    {
        return basicFileMapper.updateBasicFile(basicFile);
    }

    /**
     * 批量删除附件管理
     * 
     * @param fileIds 需要删除的附件管理ID
     * @return 结果
     */
    @Override
    public int deleteBasicFileByIds(Long[] fileIds)
    {
        Map<String, Object> map = new HashMap<>();
        map.put("ids", fileIds);
        BasicFile file = new BasicFile();
        file.setParams(map);
        List<BasicFile> files = basicFileMapper.selectBasicFileList(file);
        for(BasicFile basicFile : files) {
            String path = basicFile.getFileName().replace("/profile","");
            path = RuoYiConfig.getProfile() + path;
            FileUtils.deleteFile(path);
        }
        return basicFileMapper.deleteBasicFileByIds(fileIds);
    }

    /**
     * 删除附件管理信息
     * 
     * @param fileId 附件管理ID
     * @return 结果
     */
    @Override
    public int deleteBasicFileById(Long fileId)
    {
        return basicFileMapper.deleteBasicFileById(fileId);
    }
}
